package main

import (
	"fmt"
	"math/rand"
	"time"
)

//修改原有数组
func editOriginArr(arr *[3]int) {
	(*arr)[1] = 232
}

func getRandNum() int {
	rand.Seed(time.Now().UnixNano())
	return rand.Intn(100) //[0,100)
}

func main() {
	//1 数组定义
	arr := [...]int{1, 2, 3}
	arr1 := [3]string{1: "b", 0: "a", 2: "c"}
	fmt.Println(arr, arr1)

	editOriginArr(&arr)
	fmt.Println(arr)

	fmt.Println(getRandNum())

	//2 切片
	//数组创建切片
	slice1 := arr1[0:]
	//容量
	fmt.Println(cap(slice1))
	//长度3，容量5，分配了容量，则要求容量>长度
	slice2 := make([]float32, 3, 5)
	slice3 := []byte{1, 2, 3}
	slice4 := slice3[0:1]
	slice4 = append(slice4, 4, 9)
	fmt.Println(slice2, slice4)

	slice5 := make([]byte, 1)
	copy(slice5, slice3)
	fmt.Println(slice5)

	//string 底层是byte类型的数组,string不可变
	str := "hello"
	dst := str[0:2]
	fmt.Println(dst)
}
